﻿using System;
using System.Collections.Generic;
using System.Linq;
    
using System.Text;
using System.ServiceModel;

namespace QCM.Contract1
{
    [ServiceContract]
    public interface IContractContract
    {
        /// <summary>
        /// Retourne la liste de toutes les categories classées par catégories mères
        /// </summary>
        /// <returns></returns>
        [FaultContract(typeof(SQLFaultException))]
        [OperationContract]
        List<Categorie> GetCategories();
        /// <summary>
        /// Retourne la liste des questions d'un questionnaire
        /// </summary>
        /// <param name="nomQuestionnaire"></param>
        /// <returns></returns>
        [FaultContract(typeof(SQLFaultException))]
        [OperationContract]
        List<Question> GetQuestions(int idQuestionnaire);
        /// <summary>
        /// Retourne le nom des questionnaires appartenant a la categorie désignée
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        [FaultContract(typeof(SQLFaultException))]
        [OperationContract]
        Questionnaire GetQuestionnaire(int idQuestionnaire);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="categorie"></param>
        /// <returns></returns>
        [FaultContract(typeof(SQLFaultException))]
        [OperationContract]
        List<ShortQuestionnaire> GetQuestionnaires(int idCategorie);

        [FaultContract(typeof(GenericFaultException))]
        [OperationContract]
        int Correction(List<int> listReponses);

        [FaultContract(typeof(GenericFaultException))]
        [OperationContract]
        Boolean CorrectionSansScore(List<int> listReponses);

        [FaultContract(typeof(GenericFaultException))]
        [OperationContract]
        List<int> CorrectionAvecReponse(List<int> listReponses);
    }
}
